#ifndef TD_IMMUNE_MARIO_H_
#define TD_IMMUNE_MARIO_H_

/************************************************************************/
/* GAME                                                                 */
/************************************************************************/
#include "Game/Factories/AnimationSetFactory.h"
#include "Game/Game Objects/Marios/BaseMario.h"

/************************************************************************/
/* Resources                                                            */
/************************************************************************/
#include "Resources/ResourceManager.h"

namespace TD_Game {

	class ImmuneMario : public BaseMario {

	public:

		/************************************************************************/
		/* ctors and dtors					                                    */
		/************************************************************************/
		//Default constructor
		explicit ImmuneMario();

		//Copy constructor
		explicit ImmuneMario(const ImmuneMario &rhs);

		//Assignment constructor
		ImmuneMario& operator=(const ImmuneMario &rhs);

		//Initialization constructor 
		ImmuneMario(const WaveInfo &gWaveInfo, const Coord2D &g_position, int pathDeviant, unsigned int baseMarioHP, unsigned int baseMarioGold, float baseMarioSpeed, TerrainTilemap * const terrainTilemap, marioTypes mType, baseMarioDirection cDirection = WEST);

		//Destructor
		~ImmuneMario();

	protected: 

		/************************************************************************/
		/* Default definitions                                                  */
		/************************************************************************/
		static const float marioSpeed;

		void loadResources(marioTypes mType);



		/************************************************************************/
		/* Access functions                                                     */
		/************************************************************************/
		inline void addSlowDebuff(unsigned int slowTime, float slowPercentage) const 
		{
			
		}

	};
}

#endif


